package drds.binlog.parse.mysql.table_meta_data;

import drds.binlog.common.Authors;
import drds.binlog.common.position.EntryPosition;
import drds.binlog.parse.TableMetaData;
import drds.common.Author;

import java.util.Map;

/**
 * 表结构的时间序列存储
 */
@Author(name = Authors.LI_YANG)
public interface TableMetaDataGetter
{

    /**
     * 初始化
     */
    public boolean init(String destination);

    /**
     * 获取当前的表结构
     */
    public TableMetaData find(String schemaName, String tableName);

    /**
     * 添加ddl到时间序列库中
     */
    public boolean apply(EntryPosition entryPosition, String schemaName, String ddl, String extra);

    /**
     * 回滚到指定位点的表结构
     */
    public boolean rollback(EntryPosition entryPosition);

    /**
     * 生成快照内容
     */
    public Map<String/* schema */, String> snapshot();

}
